home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 7 / FM Towns Free Software Collection 7.iso / fb386 / graf / a00_opn2.bas < prev    next >
BASIC Source File  |  1993-11-30  |  12KB  |  421 lines

  1. 1000 'A01 **************************************************T.K.MOSAKU
  2. 1010 '
  3. 1020 SCREEN@ 1:CLS
  4. 1030 '
  5. 1040 ' 枠を書く
  6. 1050 FOR J=0 TO 4 STEP 2
  7. 1060   LINE (53-J,37-J)-(265+J,161+J),PSET,5,B
  8. 1070 NEXT
  9. 1080 LINE (54,38)-(264,160),PSET,[80,10,100],BF
  10. 1090 PAINT (0,0),[150,0,150],5
  11. 1100 FOR I=0 TO 10
  12. 1110   LINE (49+I,175+I)-(269-I,210-I),PSET,[50+3*I,10,70+3*I],BF
  13. 1120 NEXT
  14. 1130 FOR I=0 TO 10
  15. 1140   LINE (29+I,13+I)-(289-I,230-I),PSET,[50+10*I,10+I,70+10*I],B
  16. 1150 NEXT
  17. 1160 WAIT 100
  18. 1170 '
  19. 1180 ' コメント
  20. 1190 FOR T=0 TO 1
  21. 1200   READ A$,B$:NA=LEN(A$):NB=LEN(B$)
  22. 1210   FOR I=0 TO NA/2-1
  23. 1220     SYMBOL@(70+15*I,68),MID$(A$,I*2+1,2),1!,1!,6
  24. 1230     BEEP 1
  25. 1240       WAIT 10
  26. 1250     BEEP 0
  27. 1260       WAIT 10
  28. 1270   NEXT I
  29. 1280 '
  30. 1290   FOR I=0 TO NB/2-1
  31. 1300     SYMBOL@(112+15*I,100),MID$(B$,I*2+1,2),1!,1!,6
  32. 1310     BEEP 1
  33. 1320       WAIT 10
  34. 1330     BEEP 0
  35. 1340       WAIT 10
  36. 1350   NEXT I
  37. 1360   LOCATE 33,23:COLOR 6:PRINT "BY T.K.MOSAKU"
  38. 1370   WAIT 200
  39. 1380 '
  40. 1390   LINE (54,38)-(264,160),PSET,[80,10,100],BF
  41. 1400 NEXT
  42. 1410 GOTO 1470
  43. 1420 '
  44. 1430 DATA BASICによる,グラフィックス入門
  45. 1440 DATA グラフィックスの基本を,学習してみましょう
  46. 1450 '
  47. 1460 WAIT 100
  48. 1470 GOSUB *COMMENT
  49. 1480 WAIT 100
  50. 1490 '
  51. 1500 '*YOKOSEN
  52. 1510 FOR J=0 TO 152
  53. 1520   LINE (83,99)-(83+J,99),PSET,5
  54. 1530   FOR A=0 TO 150:NEXT
  55. 1540 NEXT
  56. 1550 WAIT 100
  57. 1560 '
  58. 1570 '*TATESENN NI KAERU
  59. 1580 FOR J=0 TO 76
  60. 1590   LINE (83+(J-1),99-.38!*(J-1))-(235-(J-1),99+.38!*(J-1)),PSET,[80,10,100]
  61. 1600   LINE (83+J,99-.38!*J)-(235-J,99+.38!*J),PSET,5
  62. 1610 NEXT
  63. 1620 LINE (159,70)-(159,128),PSET,5
  64. 1630 WAIT 100
  65. 1640 GOSUB *COMMENT
  66. 1650 WAIT 100
  67. 1660 '
  68. 1670 '*HIDARI YOSE
  69. 1680 LINE (159,70)-(159,128),PSET,[80,10,100]
  70. 1690 FOR T=158 TO 74 STEP -2
  71. 1700   LINE (T,70)-(T,128),PSET,5
  72. 1710   LINE (T+2,70)-(T+2,128),PSET,[80,10,100]
  73. 1720   WAIT 5
  74. 1730 NEXT
  75. 1740 GOSUB *COMMENT
  76. 1750 WAIT 100
  77. 1760 '
  78. 1770 '*MIGI YOSE
  79. 1780 FOR T=74 TO 240 STEP 2
  80. 1790   LINE (T,70)-(T,128),PSET,5
  81. 1800   LINE (T-2,70)-(T-2,128),PSET,[80,10,100]
  82. 1810   WAIT 5
  83. 1820 NEXT
  84. 1830 WAIT 100
  85. 1840 GOSUB *COMMENT
  86. 1850 WAIT 200
  87. 1860 GOSUB *COMMENT
  88. 1870 WAIT 150
  89. 1880 '
  90. 1890 '*MOU 1DO HIDARI YOSE
  91. 1900 LINE (74,70)-(74,128),PSET,5
  92. 1910 LINE (240,70)-(240,128),PSET,[80,10,100]
  93. 1920 WAIT 100
  94. 1930 GOSUB *COMMENT
  95. 1940 WAIT 150
  96. 1950 '
  97. 1960 '*ASIATO WO TUKETE
  98. 1970 FOR T=74 TO 242 STEP 2
  99. 1980   LINE (T,70)-(T,128),PSET,5
  100. 1990   WAIT 5
  101. 2000 NEXT
  102. 2010 WAIT 100
  103. 2020 GOSUB *COMMENT
  104. 2030 WAIT 200
  105. 2040 '
  106. 2050 '*KESU
  107. 2060 FOR T=74 TO 242 STEP 2
  108. 2070   LINE (T,70)-(T,128),PSET,[80,10,100]
  109. 2080   WAIT 5
  110. 2090 NEXT
  111. 2100 GOSUB *COMMENT
  112. 2110 WAIT 100
  113. 2120 '
  114. 2130 '*IRO BETU
  115. 2140 FOR C=2 TO 4
  116. 2150   FOR T=74 TO 242 STEP 2
  117. 2160     LINE (T,70)-(T,128),PSET,C
  118. 2170     WAIT 5
  119. 2180   NEXT
  120. 2190   WAIT 100
  121. 2200 NEXT
  122. 2210 FOR T=74 TO 242 STEP 2
  123. 2220   LINE (T,70)-(T,128),PSET,[80,10,100]
  124. 2230 NEXT
  125. 2240 WAIT 100:GOSUB *COMMENT
  126. 2250 WAIT 100
  127. 2260 FOR C=3 TO 2 STEP -1
  128. 2270   FOR T=74 TO 287 STEP 2
  129. 2280     IF T>242 THEN GOTO 2310
  130. 2290     LINE (T,70)-(T,128),PSET,C
  131. 2300     IF T<114 THEN GOTO 2320
  132. 2310     LINE (T-44,70)-(T-44,128),PSET,[80,10,100]
  133. 2320     WAIT 5
  134. 2330   NEXT
  135. 2340 NEXT
  136. 2350 WAIT 100
  137. 2360 GOSUB *COMMENT
  138. 2370 WAIT 100:C=1
  139. 2380 FOR T=74 TO 242 STEP 2
  140. 2390   LINE (T,70)-(T,128),PSET,C
  141. 2400   WAIT 5
  142. 2410   C=C+1:IF C>7 THEN C=1
  143. 2420 NEXT
  144. 2430 WAIT 100
  145. 2440 GOSUB *COMMENT
  146. 2450 WAIT 100
  147. 2460 FOR T=74 TO 242 STEP 2
  148. 2470   LINE (T,70)-(T,128),PSET,[80,10,100]
  149. 2480   WAIT 5
  150. 2490 NEXT
  151. 2500 GOTO 2680
  152. 2510 '
  153. 2520 *COMMENT
  154. 2530  READ A$
  155. 2540  A=LEN(A$):B=(80-A)\2:LOCATE 0,20:COLOR 6:PRINT SPACE$(B)+A$
  156. 2550 RETURN
  157. 2560 '
  158. 2570 DATA ☆☆☆  グラフィックスの基本は直線です。  ☆☆☆
  159. 2580 DATA ☆☆☆    この直線を左に移動させます。    ☆☆☆
  160. 2590 DATA ☆☆  この直線を右端まで移動させてみます。  ☆☆
  161. 2600 DATA 移動する直線が足跡を残したとするとどうでしょう。
  162. 2610 DATA ☆☆☆ 直線を元に戻して移動させてみます。 ☆☆☆
  163. 2620 DATA ☆ 今度は移動した直線が足跡を残して行きます。 ☆
  164. 2630 DATA    この移動した直線の足跡がグラフィックスです。
  165. 2640 DATA ☆色を変えると雰囲気も変わりきれいに見えます。☆
  166. 2650 DATA ☆ 移動させるとまた変わった雰囲気になります。☆
  167. 2660 DATA ☆ 順に色を変えると、また変わって見えます。 ☆
  168. 2670 DATA ☆☆☆ これが、 グラフィックスの基本です。☆☆☆
  169. 2680 '
  170. 2690 'A02 ************************************************************
  171. 2700 RESTORE 3340'
  172. 2710 GOSUB *COMMENT:WAIT 100
  173. 2720 LINE(158,67)-(158,131),PSET,5:WAIT 100
  174. 2730 '
  175. 2740 LINE(158,67)-(158,131),PSET,[80,10,100]
  176. 2750 FOR I=2 TO 32
  177. 2760   CIRCLE (158,99),I,5,32/I,,,N:WAIT 5
  178. 2770   CIRCLE (158,99),I,[80,10,100],32/I,,,N
  179. 2780 NEXT
  180. 2790 CIRCLE (158,99),32,5,,,,N
  181. 2800 WAIT 100
  182. 2810 GOSUB *COMMENT
  183. 2820 WAIT 200:GOSUB *COMMENT:WAIT 100
  184. 2830 CIRCLE (158,99),32,[80,10,100],,,,N
  185. 2840 CIRCLE (95,99),32,5,,,,N
  186. 2850 WAIT 100
  187. 2860 GOSUB *COMMENT
  188. 2870 WAIT 100
  189. 2880 FOR I=0 TO 125 STEP 2
  190. 2890   CIRCLE (95+I,99),32,[80,10,100],,,,N
  191. 2900   CIRCLE (97+I,99),32,5,,,,N
  192. 2910   WAIT 5
  193. 2920 NEXT
  194. 2930 WAIT 100
  195. 2940 GOSUB *COMMENT
  196. 2950 WAIT 200
  197. 2960 GOSUB *COMMENT
  198. 2970 WAIT 150
  199. 2980   CIRCLE (221,99),32,[80,10,100],,,,N
  200. 2990   CIRCLE (95,99),32,5,,,,N
  201. 3000 WAIT 100
  202. 3010 GOSUB *COMMENT
  203. 3020 WAIT 100
  204. 3030 FOR I=0 TO 126 STEP 6
  205. 3040   CIRCLE (95+I,99),32,5,,,,N
  206. 3050   WAIT 10
  207. 3060 NEXT
  208. 3070 WAIT 100
  209. 3080 GOSUB *COMMENT
  210. 3090 WAIT 100
  211. 3100 FOR I=0 TO 126 STEP 6
  212. 3110   CIRCLE (95+I,99),32,[80,10,100],,,,N
  213. 3120   WAIT 10
  214. 3130 NEXT
  215. 3140 WAIT 100
  216. 3150 GOSUB *COMMENT
  217. 3160 WAIT 100
  218. 3170 FOR C=1 TO 3
  219. 3180   FOR I=0 TO 126 STEP 6
  220. 3190     CIRCLE (95+I,99),32,C,,,,N
  221. 3200     WAIT 10
  222. 3210   NEXT
  223. 3220   WAIT 100
  224. 3230 NEXT
  225. 3240 WAIT 100
  226. 3250 GOSUB *COMMENT
  227. 3260 FOR I=0 TO 126 STEP 6
  228. 3270   CIRCLE (95+I,99),32,[80,10,100],,,,N
  229. 3280   WAIT 10
  230. 3290 NEXT
  231. 3300 WAIT 100
  232. 3310 GOTO 3440
  233. 3320 '
  234. 3330 '
  235. 3340 DATA ☆☆☆ 直線を円に変えてみます。 ☆☆☆
  236. 3350 DATA ☆☆ この円もグラフィックスの基本です。 ☆☆
  237. 3360 DATA ☆☆☆  この円を左に移動させます。  ☆☆☆
  238. 3370 DATA ☆☆ この円を右端まで移動させてみます。 ☆☆
  239. 3380 DATA 移動する円が足跡を残したとするとどうでしょう。
  240. 3390 DATA ☆☆ 円を元に戻して移動させてみます。☆☆☆
  241. 3400 DATA ☆ 今度は移動した円が足跡を残して行きます。☆
  242. 3410 DATA この移動した円の足跡がグラフィックスです。
  243. 3420 DATA ☆ 色を変えると雰囲気も変わりきれいに見えます。☆
  244. 3430 DATA ☆☆☆ これが、 グラフィックスの基本です。 ☆☆☆
  245. 3440 '
  246. 3450  'A03.BAS**************************************************T.K.MOSAKU
  247. 3460 '
  248. 3470 GOSUB *COMMENT
  249. 3480 WAIT 100
  250. 3490 AB=3:DC=2'
  251. 3500 X=158+79*SIN(0):Y=99-48*SIN(0):PI=3.14159!
  252. 3510 POINT(X,Y)
  253. 3520 FOR T=O TO 2*PI+.02! STEP .01!
  254. 3530   X=158+79*SIN(AB*T)
  255. 3540   Y=99 -48*SIN(DC*T)
  256. 3550   LINE -(X,Y),PSET,4
  257. 3560 NEXT
  258. 3570 WAIT 100
  259. 3580 FOR T=O TO 2*PI+.02! STEP .01!
  260. 3590   X=158+79*SIN(AB*T)
  261. 3600   Y=99 -48*SIN(DC*T)
  262. 3610   LINE -(X,Y),PSET,[80,10,100]
  263. 3620 NEXT
  264. 3630 GOSUB *COMMENT:WAIT 100
  265. 3640 AB=15:DC=14:BB=BB+1
  266. 3650 IF BB=1 THEN GOTO 3500 ELSE GOTO 3660
  267. 3660 '
  268. 3670 GOSUB *COMMENT'
  269. 3680 WAIT 100
  270. 3690 DEF FNE(P)=99-32*SIN(P)
  271. 3700 FOR I=0 TO 360 STEP 2
  272. 3710   X=72+I/2
  273. 3720   Y=FNE(I/180*PI)
  274. 3730   PSET (X,Y),4
  275. 3740 NEXT
  276. 3750 LINE (72,99)-(252,99),PSET,4:WAIT 100
  277. 3760 WAIT 100
  278. 3770 FOR I=0 TO 360 STEP 2 
  279. 3780   X=72+I/2
  280. 3790   Y=FNE(I/180*PI)
  281. 3800   PSET (X,Y),[80,10,100]
  282. 3810 NEXT
  283. 3820 LINE (72,99)-(252,99),PSET,[80,10,100]:WAIT 100
  284. 3830 GOSUB *COMMENT
  285. 3840 '
  286. 3850 DEF FNF(P)=99-32*SIN(4*P)
  287. 3860 POINT (72,FNF(0))
  288. 3870 FOR I=0 TO 360 
  289. 3880   X=72+I/2
  290. 3890   Y=FNF(I/180*PI)
  291. 3900   LINE -(X,Y),PSET,4
  292. 3910 NEXT
  293. 3920 LINE (72,99)-(252,99),PSET,4:WAIT 100
  294. 3930 POINT (72,FNF(0))
  295. 3940 FOR I=0 TO 360 
  296. 3950   X=72+I/2
  297. 3960   Y=FNF(I/180*PI)
  298. 3970   LINE -(X,Y),PSET,[80,10,100]
  299. 3980 NEXT
  300. 3990 LINE (72,99)-(252,99),PSET,[80,10,100]:WAIT 100
  301. 4000 '
  302. 4010 DEF FNG(P)=99-32*SIN(8*P)
  303. 4020 POINT (72,FNG(0))
  304. 4030 FOR I=0 TO 360 
  305. 4040   X=72+I/2
  306. 4050   Y=FNG(I/180*PI)
  307. 4060   LINE -(X,Y),PSET,4
  308. 4070 NEXT
  309. 4080 LINE (72,99)-(252,99),PSET,4:WAIT 100
  310. 4090 POINT (72,FNG(0))
  311. 4100 FOR I=0 TO 360 
  312. 4110   X=72+I/2
  313. 4120   Y=FNG(I/180*PI)
  314. 4130   LINE -(X,Y),PSET,[80,10,100]
  315. 4140 NEXT
  316. 4150 LINE (72,99)-(252,99),PSET,[80,10,100]:WAIT 100
  317. 4160 GOSUB *COMMENT:WAIT 100
  318. 4170 'DEF FNE(P)=99-32*SIN(P):PI=3.14159!
  319. 4180 FOR I=6 TO 350 STEP 6
  320. 4190   X=70+I/2
  321. 4200   Y=FNE(I/180*PI)
  322. 4210   CIRCLE(X,Y),15,4,,,,N
  323. 4220 NEXT
  324. 4230 WAIT 100
  325. 4240 FOR I=6 TO 350 STEP 6
  326. 4250   X=70+I/2
  327. 4260   Y=FNE(I/180*PI)
  328. 4270   CIRCLE(X,Y),15,[80,10,100],,,,N
  329. 4280 NEXT
  330. 4290 '
  331. 4300 DATA ☆リサージュカーブもグラフィックスの基本です。☆
  332. 4310 DATA ☆☆☆   スピードを上げ細かく描きます。  ☆☆☆     
  333. 4320 DATA ☆☆☆   スピードを上げ細かく描きます。  ☆☆☆     
  334. 4330 DATA ☆☆☆  サインカーブも基本になります。  ☆☆☆
  335. 4340 DATA ☆☆☆  振幅を細かくして描いてみます。  ☆☆☆  
  336. 4350 DATA ☆☆  サインカーブ上に円を乗せてみます。  ☆☆
  337. 4360 'DATA ☆☆  このようにいろいろな形ができます。 ☆☆  
  338. 4370 '
  339. 4380 '
  340. 4390 'A04 **************************************************************
  341. 4400 '
  342. 4410 GOSUB *COMMENT
  343. 4420 WAIT 100
  344. 4430 X=158:Y=99:A=4:B=27
  345. 4440 DEF FNA(P)=COS(P):DEF FNB(P)=SIN(P):PI=3.1415!
  346. 4450 FOR P=0 TO 360 STEP 15
  347. 4460   X1=X+A*FNA(P/180*PI):X2=X+B*FNA(P/180*PI)
  348. 4470   Y1=Y-A*FNB(P/180*PI):Y2=Y-B*FNB(P/180*PI)
  349. 4480   LINE (X1,Y1)-(X2,Y2),PSET,5
  350. 4490   WAIT 5
  351. 4500 NEXT
  352. 4510 WAIT 100
  353. 4520 FOR P=0 TO 180 STEP 10
  354. 4530   X1=X+35*FNA(P/180*PI*2)
  355. 4540   Y1=Y-35*FNB(P/180*PI*2)
  356. 4550   CIRCLE (X1,Y1),3,2,,,,N
  357. 4560   WAIT 10
  358. 4570 NEXT
  359. 4580 WAIT 100
  360. 4590 FOR P=0 TO 180 STEP 10
  361. 4600   X1=X+36*FNA(P/180*PI*2)
  362. 4610   Y1=Y-36*FNB(P/180*PI*2)
  363. 4620   CIRCLE (X1,Y1),5,3,,,,N
  364. 4630   WAIT 10
  365. 4640 NEXT
  366. 4650 WAIT 100
  367. 4660 LINE (158,157)-(158,140),PSET,4:WAIT 20
  368. 4670 LINE (153,157)-(153,145),PSET,4:WAIT 20
  369. 4680 LINE (163,157)-(163,145),PSET,4:WAIT 20
  370. 4690 LINE (148,157)-(148,150),PSET,4:WAIT 20
  371. 4700 LINE (168,157)-(168,150),PSET,4:WAIT 20
  372. 4710 LINE (143,157)-(143,155),PSET,4:WAIT 20
  373. 4720 LINE (173,157)-(173,155),PSET,4:WAIT 20
  374. 4730 '
  375. 4740 CIRCLE(138,157)-(126,131)-(98, 109),4:WAIT 20
  376. 4750 CIRCLE(178,157)-(190,131)-(218,109),4:WAIT 20
  377. 4760 CIRCLE(133,157)-(116,131)-(88, 119),4:WAIT 20
  378. 4770 CIRCLE(183,157)-(200,131)-(228,119),4:WAIT 20
  379. 4780 CIRCLE(128,157)-(106,131)-(78, 129),4:WAIT 20
  380. 4790 CIRCLE(188,157)-(210,131)-(238,129),4:WAIT 20
  381. 4800 GOSUB *COMMENT:WAIT 100
  382. 4810 GOSUB *COMMENT:WAIT 100
  383. 4820 LOCATE 0,20:PRINT SPACE$(70)
  384. 4830 GOTO 4880
  385. 4840 '
  386. 4850 DATA ☆☆☆ 円や直線を規則的に書き重ねてみます。 ☆☆☆
  387. 4860 DATA ☆☆☆ 円や直線でできたグラフィックスです。 ☆☆☆
  388. 4870 DATA ☆☆  このようにいろいろな形ができます。 ☆☆  
  389. 4880 '
  390. 4890 WAIT 100
  391. 4900 '
  392. 4910   LINE (54,38)-(264,160),PSET,[80,10,100],BF
  393. 4920   READ A$,B$:NA=LEN(A$):NB=LEN(B$)
  394. 4930   FOR I=0 TO NA/2-1
  395. 4940     SYMBOL@(70+15*I,68),MID$(A$,I*2+1,2),1!,1!,6
  396. 4950     BEEP 1
  397. 4960       WAIT 10
  398. 4970     BEEP 0
  399. 4980       WAIT 10
  400. 4990   NEXT I
  401. 5000 '
  402. 5010   FOR I=0 TO NB/2-1
  403. 5020     SYMBOL@(112+15*I,100),MID$(B$,I*2+1,2),1!,1!,6
  404. 5030     BEEP 1
  405. 5040       WAIT 10
  406. 5050     BEEP 0
  407. 5060       WAIT 10
  408. 5070   NEXT I
  409. 5080   WAIT 100:GOTO 5120
  410. 5090 '
  411. 5100 DATA 第1部は終わりです,また会いましょう。
  412. 5110 '
  413. 5120 GOSUB *COMMENT:WAIT 100
  414. 5130 GOSUB *COMMENT:WAIT 200
  415. 5140 GOSUB *COMMENT:WAIT 200
  416. 5150 SYSTEM
  417. 5160 '
  418. 5170 DATA ☆☆☆ もっと詳しく見てみたい方は、 ☆☆☆
  419. 5180 DATA ☆"A00_OPN1.BAS"をF_BASUIC 386で起動させて☆
  420. 5190 DATA ☆☆☆   ご覧下さい。きれいですよ。   ☆☆☆          
  421.